Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare for Native AOT #246

Merged
merged 13 commits into from
May 6, 2024
Merged

Prepare for Native AOT #246

merged 13 commits into from
May 6, 2024

Conversation

vcsjones
Copy link
Owner

@vcsjones vcsjones commented May 6, 2024

One of the goals (see #202) that I missed for the AST 5.0 release is that it was not publishable as a Native AOT application.

I ran in to a number of problems while investigating this that this PR intends to solve.

  1. At the time of the investigation, parts of the Azure SDK were not trimming compatible. This has since been resolved.
  2. At the time of the investigation, the command line parsing library that was used is not Native AOT friendly. This library is also in maintenance mode, so it was time to replace it. This PR replaces the command line parsing with a new parser with a specific design goal of being AOT / trimming compatible.

The new parser is not a drop in replacement. I made an effort to make sure the command line people are already using should remain valid, so it shouldn't break anyone. That said, the differences are big enough that there is likely a scenario or input that I have not tested. When we get closer to a v6.0 release, I intend to publish pre-release builds so that hopefully the community can test the new command line parser for compatibility breaks.

That said, after these changes, AzureSignTool can be built with zero trimming warnings or suppressions. The final AzureSignTool binary is 12.5 MB. I might be able to whittle it down a bit more, but considering that this has a whole bunch of the Azure SDK in it, I think it's a reasonable starting point and isn't big beyond usefulness.

@vcsjones vcsjones marked this pull request as draft May 6, 2024 00:59
@vcsjones vcsjones marked this pull request as ready for review May 6, 2024 17:03
@vcsjones vcsjones enabled auto-merge May 6, 2024 17:04
@vcsjones vcsjones disabled auto-merge May 6, 2024 17:06
@vcsjones vcsjones merged commit bc05080 into main May 6, 2024
1 check passed
@vcsjones vcsjones deleted the native-aot branch May 6, 2024 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant